1. Field of the Invention
The present invention relates to the field of software application development and more particularly to the application of a model driven architecture (MDA) in the design and implementation of service provisioning applications.
2. Description of the Related Art
As businesses and consumers become further interconnected through computer communications networks such as the global Internet and local intranets, commerce and other service provisioning sites along with companion computing applications which integrate interactions between businesses and consumers alike, can become ever more complex. Addressing the explosion of business to business and business to consumer interactions on-line, information technologists increasingly focus on architecting and implementing complete software application solutions to reflect the entire life cycle of a business in lieu of integrating multiple, disparate applications which when combined reflect the business life cycle. Consequently, as modern software application and service provisioning sites can be both large and distributed, service provisioning systems have been configured to deploy complete services in as seamless a fashion as possible.
It is now a common trend that traditional, stand-alone, service provisioning oriented applications are produced from one or more components which can be individually re-used to create business processes for different solutions. Each of these components can expose itself as a set of services comporting with computing standards for deploying enterprise level logic that facilitate an open service provisioning architecture. A service provisioning architecture such as Service Oriented Architecture (SOA), essentially can be defined as a collection of services. These services communicate with each other. This communication can involve either simple data passing between two or more services, or activity coordinating between two or more services.
The Model Driven Architecture (MDA) approach has been proposed and promoted over the past few years as a methodology for streamlining the design and implementation of enterprise systems. Generally, in MDA each design artifact of the enterprise system can be represented as a Platform Independent Model (PIM) that is generated by or is compliant with a Computation Independent Model. This PIM is able to be transformed to a corresponding Platform Specific Models (PSM) and ultimately to source code that complies with specific programmatic paradigms and patterns. In this context, a PIM represents the elements and components of a software system in a way that is not bound or dependent to a specific implementation technology. By comparison, a PSM represents the elements and components of a software system in a way that directly relates to the implementation technology that will be used for implementing such a system.
Even though MDA frameworks have caught the attention of the software engineering community as a way to increase programmer productivity and overall system robustness through the disciplined manipulation and transformation of models and ultimately code generation, MDA as a methodology has remained so far only as a “guideline” or “standard practice” that is left to be implemented by the individual organizations and software vendors. In this respect, important questions regarding which types of models are to pertain to PIMs and PSMs, how transformations are to be encoded and enacted, how constraints are to be denoted and validated, and how source code is to be generated, remains left to software vendors, software architects and software developers to further design and implement.
Currently, there are a number of tools that support MDA compliant or semi-compliant software development. More specifically, existing MDA tools can be classified in two main categories namely, “full-MDA-capability” tools that incorporate modeling, transformation, and code generation infrastructure, and “limited-MDA-capability” tools that incorporate only code generation infrastructure using specific, typically unified model language (UML), models as input. In fact, in current approaches UML profiles and included stereotypes have been used to provide means for semantically annotating (tagging) collections of PIM or PSM, Meta-Object Facility (MOF) compliant models, for standardizing elements of specific platforms, or for denoting the operation names of transformations.